package com.example.database.demo.service;

import com.example.database.demo.pojo.Result;
import com.example.database.demo.pojo.SFPojo.requestData.ListFreightQuery.ListFreightQuery;
import com.example.database.demo.pojo.SFPojo.requestData.OrderCancel.OrderCancel;
import com.example.database.demo.pojo.SFPojo.requestData.OrderResultQuery.OrderResultQuery;
import com.example.database.demo.pojo.SFPojo.requestData.PlaceOrder.RequestParms;
import com.example.database.demo.pojo.SFPojo.requestData.PrintWayBills.PrintWayBills;
import com.example.database.demo.pojo.SFPojo.requestData.PrintWayBillsForSync.PrintWayBillsForSync;
import com.example.database.demo.pojo.SFPojo.requestData.PushOrderState.PushOrderState;
import com.example.database.demo.pojo.SFPojo.requestData.RouteQuery.RouteQuery;
import com.example.database.demo.pojo.SFPojo.responseData.ResponseData;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.http.ResponseEntity;

import java.io.IOException;
import java.util.List;

/**
 * @author xionglin
 */
public interface SFPhysicalPublicService {
    List<ResponseData> placeOrder(List<RequestParms> requestParams, String serviceCode) throws IOException;

    List<ResponseData> orderResultQuery(List<OrderResultQuery> orderResultQuery, String serviceCode) throws IOException;

    List<ResponseData> orderCancel(List<OrderCancel> orderCancel, String serviceCode) throws IOException;

    ResponseData routeQuery(RouteQuery routeQuery, String serviceCode) throws Exception;

    List<ResponseData> listFreightQuery(List<ListFreightQuery> listFreightQuery, String serviceCode) throws IOException;

    List<ResponseData> printWayBills(List<PrintWayBills> printWayBills, String serviceCode) throws IOException;

    ResponseData printWayBillsForSync(PrintWayBillsForSync printWayBillsForSync, String serviceCode) throws IOException;

    ResponseEntity<byte[]> downLoadPrintWayBills(List<String> waybillNoList) throws Exception;

    Result PushOrderState(PushOrderState pushOrderState, String code);

    Result pushListFreightQuery(String content) throws JsonProcessingException;
}